import json
from vosk import Model, KaldiRecognizer
import wave

# 加载模型
a1 = Model('zhongwen')

# 打开音频文件
a2 = wave.open('1.wav')  # 确保文件是.wav格式

# 创建语音识别器
a3 = KaldiRecognizer(a1, 16000)

print('开始识别')

while True:
    # 每次读取音频文件多少帧(1秒=16000帧)
    a4 = a2.readframes(4000)
    if not a4:
        break
    # 识别音频帧
    if a3.AcceptWaveform(a4):
        result = json.loads(a3.Result())
        print(result['text'])
    # 创建语音识别器
    a3 = KaldiRecognizer(a1, 16000)
    print('开始识别')
    while True:
        # 每次读取音频文件多少帧(1秒=16000帧)
        a4 = a2.readframes(4000)
        # 如果读取不到数据就退出循环
        if not a4:
            break
        # 传入读取数据进行识别
        if a3.AcceptWaveform(a4):
            # 识别器对象.FinalResult() 返回的是所有识别结果(json格式)
            a5 = json.loads(a3.FinalResult())['text'].replace(' ', '')
            print(a5)